typedef struct {
int id;
/* Common locations (gl_common)*/
- int mvp_location;
int source_location;
int mask_location;
int uv_location;
graphene_size_t size;
- graphene_matrix_t mvp;
graphene_matrix_t projection;
graphene_matrix_t modelview;
enum {
- MVP,
SOURCE,
MASK,
ALPHA,
gsk_shader_builder_get_uniform_location (builder, prog->id, self->uniforms[SOURCE]);
prog->mask_location =
gsk_shader_builder_get_uniform_location (builder, prog->id, self->uniforms[MASK]);
- prog->mvp_location =
- gsk_shader_builder_get_uniform_location (builder, prog->id, self->uniforms[MVP]);
prog->alpha_location =
gsk_shader_builder_get_uniform_location (builder, prog->id, self->uniforms[ALPHA]);
prog->blendMode_location =
gsk_shader_builder_set_resource_base_path (builder, "/org/gtk/libgsk/glsl");
- self->uniforms[MVP] = gsk_shader_builder_add_uniform (builder, "uMVP");
self->uniforms[SOURCE] = gsk_shader_builder_add_uniform (builder, "uSource");
self->uniforms[MASK] = gsk_shader_builder_add_uniform (builder, "uMask");
self->uniforms[ALPHA] = gsk_shader_builder_add_uniform (builder, "uAlpha");
init_common_locations (self, builder, &self->blit_program);
self->color_program.id =
- gsk_shader_builder_create_program (builder, "color.vs.glsl", "color.fs.glsl", &shader_error);
+ gsk_shader_builder_create_program (builder, "blit.vs.glsl", "color.fs.glsl", &shader_error);
if (shader_error != NULL)
{
g_propagate_prefixed_error (error,
INIT_PROGRAM_UNIFORM_LOCATION (coloring_program, color_location, "uColor");
self->color_matrix_program.id = gsk_shader_builder_create_program (builder,
- "color_matrix.vs.glsl",
+ "blit.vs.glsl",
"color_matrix.fs.glsl",
&shader_error);
if (shader_error != NULL)
}
/* Common uniforms */
- graphene_matrix_to_float (&item->mvp, mat);
- glUniformMatrix4fv (item->program->mvp_location, 1, GL_FALSE, mat);
-
graphene_matrix_to_float (&item->projection, mat);
- glUniformMatrix4fv (item->program->projection_location, 1, GL_TRUE, mat);
+ glUniformMatrix4fv (item->program->projection_location, 1, GL_FALSE, mat);
graphene_matrix_to_float (&item->modelview, mat);
- glUniformMatrix4fv (item->program->modelview_location, 1, GL_TRUE, mat);
+ glUniformMatrix4fv (item->program->modelview_location, 1, GL_FALSE, mat);
+
glUniform1f (item->program->alpha_location, item->opacity);
glUniform4f (item->program->viewport_location,
self->viewport.origin.x, self->viewport.origin.y,
item.max.x = item.min.x + node->bounds.size.width;
item.max.y = item.min.y + node->bounds.size.height;
- /* The location of the item, in normalized world coordinates */
- graphene_matrix_multiply (modelview, projection, &item.mvp);
item.z = project_item (projection, modelview);
item.opacity = 1.0;
'resources/glsl/blit.fs.glsl',
'resources/glsl/blit.vs.glsl',
'resources/glsl/color.fs.glsl',
- 'resources/glsl/color.vs.glsl',
'resources/glsl/coloring.fs.glsl',
'resources/glsl/color_matrix.fs.glsl',
- 'resources/glsl/color_matrix.vs.glsl',
'resources/glsl/linear_gradient.fs.glsl',
'resources/glsl/es2_common.fs.glsl',
'resources/glsl/es2_common.vs.glsl',